import 'package:built_collection/built_collection.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
import 'package:mobile_app.core/core/presentation/helpers/screen_util_mixin.dart';
import 'package:mobile_app.core/core/presentation/widgets/app_button.dart';
import 'package:mobile_app.core/core/presentation/widgets/shake_built_transition.dart';
import 'package:mobile_app.core/core/presentation/widgets/stateful_wloc.dart';
import 'package:mobile_app.core/core/presentation/widgets/wloc_builder.dart';
import 'package:mobile_app.home.core/card_symbol_assemblage_block/application/bloc/bloc.dart'
    as bloc;
import 'package:mobile_app.home.core/card_symbol_assemblage_block/domain/entities/symbol_info.dart';
import 'package:mobile_app.home.core/card_symbol_assemblage_block/injection_container.dart'
    as card_symbol_assemblage_block_di;
import 'package:mobile_app.home.core/core/presentation/theme/home_core_theme.dart';
import 'package:mobile_app.home.core/core/presentation/widgets/card_button.dart';

part 'view.dart';

part 'widgets/symbol_button.dart';

part 'wloc.dart';

part 'wloc_state.dart';

part 'wloc_state_factory.dart';

class CardSymbolAssemblageBlock extends StatefulWidget {
  const CardSymbolAssemblageBlock({
    required this.symbolString,
    required this.textEditingController,
    required this.textColorAnimationController,
    required this.textFieldShakeAnimationController,
    required this.onHintButtonPressed,
    super.key,
  });

  final String symbolString;
  final TextEditingController textEditingController;
  final AnimationController textColorAnimationController;
  final AnimationController textFieldShakeAnimationController;
  final VoidCallback onHintButtonPressed;

  @override
  State<CardSymbolAssemblageBlock> createState() => _CardSymbolAssemblageBlockWloc();
}
